#pragma once

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

typedef int DLTDataType;
typedef struct DListNode
{
	struct DListNode* prev;
	struct DListNode* next;
	DLTDataType data;
}DListNode;

DListNode* BuyDListNode(DLTDataType x);
DListNode* DLInit();
void DLDestroy(DListNode* phead);

void DLPrint(DListNode* phead);
void DLPushBack(DListNode* phead, DLTDataType x);
void DLPushFront(DListNode* phead, DLTDataType x);
void DLPopBack(DListNode* phead);
void DLPopFront(DListNode* phead);

void DLInsert(DListNode* pos, DLTDataType x);
void DLErase(DListNode* pos);
DListNode* DLFind(DListNode* phead, DLTDataType x);


